package cz.muni.fi.pa165.mushroom.website.services;



import cz.muni.fi.pa165.mushroom.website.dto.ForestDto;
import cz.muni.fi.pa165.mushroom.website.dto.MushroomDto;

import java.util.List;

/**
 * @author: Pavel Démuth
 */
public interface ForestService {
/**
     * Method that adds Forest object into the DB.
     *
     * @param forestDto Forest to be created in DB
     * @return newly created Forest object from the DB.
     */
    public void createForest(ForestDto forestDto);

    /**
     * Method that updates change of Forest object in the DB.
     *
     * @param forestDto Forest in DB for updating
     * @return updated Forest object from the DB.
     */
    public void updateForest(ForestDto forestDto);

    /**
     * Method that deletes Forest object from the DB.
     *
     * @param forestDto
     * @return deleted Forest object, that was from the DB.
     */
    public void removeForest(ForestDto forestDto);

    /**
     * Method that search for specific Forest object from the DB.
     *
     * @param id
     * @return founded Forest from the DB.
     */
    public ForestDto findForest(Long id);

    /**
     * Method that gets all Forest objects from the DB.
     *
     * @return list of all forests from the DB.
     */
    public List<ForestDto> listForests();

    /**
     * Method that search for specific Forest object from the DB.
     *
     * @param forestDto
     * @return list of all suitable Forest objects
     */
    public List<MushroomDto> listFoundMushrooms(ForestDto forestDto);
}
